使用ctrl + c停止python |
您所在的位置:网站首页 › python 停止程序运行 › 使用ctrl + c停止python |
Ctrl+ DWindows和Linux的区别 事实证明,像Python 3.6,Python的口译手柄Ctrl+ C不同的Linux和Windows。对于Linux,Ctrl+ C会的工作主要预期但是在Windows Ctrl+ C 大多没有特别的工作,如果Python是运行阻塞调用,如thread.join或等待网页响应。它确实适用于time.sleep。这是Python解释器中发生的事情的很好的解释。注意Ctrl+ C生成SIGINT。 解决方案1:使用Ctrl+ Break或等效项 在终端/控制台窗口中使用下面的键盘快捷键,这些快捷键将SIGBREAK在OS的较低级别生成并终止Python解释器。 Mac OS和Linux Ctrl+ Shift+ \或Ctrl+\ Windows: 一般:Ctrl+Break 戴尔:Ctrl+ Fn+ F6或Ctrl+ Fn+S 联想:Ctrl+ Fn+ F11或Ctrl+ Fn+B HP:Ctrl+ Fn+Shift 三星:Fn+Esc解决方案2:使用Windows API 以下是一些方便的功能,这些功能将检测Windows并在控制台中为Ctrl+ 安装自定义处理程序C: #win_ctrl_c.py import sys def handler(a,b=None): sys.exit(1) def install_handler(): if sys.platform == "win32": import win32api win32api.SetConsoleCtrlHandler(handler, True)您可以像上面这样使用: import threading import time import win_ctrl_c # do something that will block def work(): time.sleep(10000) t = threading.Thread(target=work) t.daemon = True t.start() #install handler install_handler() # now block t.join() #Ctrl+C works now!解决方案3:轮询方法 我不喜欢或不推荐这种方法,因为它不必要地消耗了处理器并降低了对性能的影响。 导入线程导入时间 def work(): time.sleep(10000) t = threading.Thread(target=work) t.daemon = True t.start() while(True): t.join(0.1) #100ms ~ typical human response # you will get KeyboardIntrupt exception |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |